home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / basic / qbfaqr01.zip / DEC2ANY.BAS < prev    next >
BASIC Source File  |  1992-08-10  |  1KB  |  34 lines

  1. 'Date: 01-22-92 (21:54)
  2. 'From: TOM HANLIN
  3. '---------------------------------------------------------------------------
  4. ' just for the heck of it... the source for the PBClone 1.7 routine
  5. ' to convert a decimal number to any number base (2-35).  Set Number$
  6. ' to STRING$(16, "0") on entry; use NumberLen to trim (via RIGHT$) on
  7. ' exit if you don't want any leading zeros.  NumberLen = -1 on error.
  8.    DEFINT A-Z
  9. SUB Dec2Any (DecimalNumber, NumberBase, Number$, NumberLen)
  10.    Num& = CVL(MKI$(DecimalNumber) + STRING$(2, 0))
  11.    Result$ = ""
  12.    IF NumberBase < 2 OR NumberBase > 35 THEN
  13.       NumberLen = -1
  14.       EXIT SUB
  15.    END IF
  16.    DO
  17.       NextNum& = Num& \ CLNG(NumberBase)
  18.       Digit = Num& - NextNum& * CLNG(NumberBase)
  19.       IF Digit < 10 THEN
  20.          Digit$ = CHR$(ASC("0") + Digit)
  21.       ELSE
  22.          Digit$ = CHR$(ASC("A") + Digit - 10)
  23.       END IF
  24.       Result$ = Digit$ + Result$
  25.       Num& = NextNum&
  26.    LOOP WHILE Num& > 0&
  27.    IF LEN(Result$) > LEN(Number$) THEN
  28.       NumberLen = -1
  29.    ELSE
  30.       NumberLen = LEN(Result$)
  31.       MID$(Number$, LEN(Number$) - NumberLen + 1) = Result$
  32.    END IF
  33. END SUB
  34.